home *** CD-ROM | disk | FTP | other *** search
/ Floppyshop 2 / Floppyshop - 2.zip / Floppyshop - 2.iso / diskmags / 0022-3.564 / dmg-0127 / 356.txt next >
Text File  |  1997-04-16  |  65KB  |  1,562 lines

  1. Info-Atari16 Digest         Wed, 26 Jun 91       Volume 91 : Issue 356
  2.  
  3. Today's Topics:
  4.                  Atari-To-Amiga Convert Info Source!
  5.                   C-Dungeon (ZORK) for the Atari ST
  6.                   GemFast source and such..........
  7.         Latest Picture Formats List (Lots of Changes!)  [LONG]
  8.       lharc woes (AGAIN, was Is musedt.lzh corrupted?) (2 msgs)
  9.              Possible GCR sale...  What is the real value
  10.                          Problems using MNP5
  11.                Repost: The Mother of All Computer Sales
  12.                 Review of LHARC Test Archive Function
  13.                      Slime World - Lynx (2 msgs)
  14.                 ST Software from British distributors
  15.                     Unwanted Amiga Input (2 msgs)
  16.                          What's a STE anyway?
  17.                  What do I use to view 'sps' images?
  18.                              Xcontrol.acc
  19.  
  20. Welcome to the Info-Atari16 Digest.  The configuration for the automatic
  21. cross-posting to/from Usenet is getting closer, but still getting thrashed
  22. out.  Please send notifications about broken digests or bogus messages
  23. to Info-Atari16-Request@NAUCSE.CSE.NAU.EDU.
  24.  
  25. Please send requests for un/subscription and other administrivia to
  26. Info-Atari16-Request, *NOT* Info-Atari16.  Requests that go to the list
  27. instead of the moderators are likely to be lost or ignored.
  28.  
  29. If you want to unsubscribe, and you're receiving the digest indirectly
  30. from someplace (usually a BITNET host) that redistributes it, please
  31. contact the redistributor, not us.
  32. ----------------------------------------------------------------------
  33.  
  34. Date: 27 Jun 91 01:09:54 GMT
  35. From:
  36.  noao!ncar!elroy.jpl.nasa.gov!swrinde!zaphod.mps.ohio-state.edu!menudo.uh.edu!su
  37.  gar!peter@arizona.edu (Peter da Silva)
  38. Subject: Atari-To-Amiga Convert Info Source!
  39. To: Info-Atari16@naucse.cse.nau.edu
  40.  
  41. In article <1991Jun24.234414.1@simvax.labmed.umn.edu>
  42.  davidli@simvax.labmed.umn.edu writes:
  43. > Redirected to comp.sys.amiga.advocacy, where this who thread belongs.
  44.  
  45. [followed by the entire message]
  46.  
  47. Get a clue and learn how to use news.
  48.  
  49. (followups directed to the appropriate group)
  50. --
  51. Peter da Silva.   `-_-'   <peter@sugar.neosoft.com>.
  52.                    'U`    "Have you hugged your wolf today?"
  53.  
  54. ------------------------------
  55.  
  56. Date: 27 Jun 91 01:37:03 GMT
  57. From:
  58.  noao!ncar!elroy.jpl.nasa.gov!swrinde!zaphod.mps.ohio-state.edu!magnus.acs.ohio-
  59.  state.edu!csn!hellgate.utah.edu!cc.usu.edu!riverheights.usu.edu!kurto@arizona.e
  60.  du (869883 Olsen Kurt_Consultant)
  61. Subject: C-Dungeon (ZORK) for the Atari ST
  62. To: Info-Atari16@naucse.cse.nau.edu
  63.  
  64. Hi all,
  65.  
  66. I've uploaded it to atari.archive.umich.edu (141.211.164.8).  For those of
  67. you who need it mailed to you I can still do that.  Currently it is
  68. a uuencoded zoo file approximately 300k long.  Let me know if this works
  69. for you if you need it mailed.
  70.  
  71. Kurt Olsen
  72. kurto@cache.usu.edu
  73.  
  74. ------------------------------
  75.  
  76. Date: Wed, 26 Jun 91 21:13:53 CDT
  77. From: Mike Dorman <MDORMAN1@UA1VM.UA.EDU>
  78. Subject: GemFast source and such..........
  79. To: Atari List <Info-Atari16@naucse.cse.nau.edu>
  80.  
  81. Well, at least in the digest, Steve Yelvington's message and mine are one
  82. right after another--I am the mike dorman he talked about, and I certainly
  83. can get messages to Ian--so mail me direct at MDORMAN1@UA1VM.UA.EDU--it
  84. won't clog up Steve's mailbox quite so much :~).
  85.  
  86. Mike.
  87.  
  88. -------------------------------------------------------------------------------
  89. : Michael Alan Dorman   :                                                     :
  90. : MDORMAN1@UA1VM.UA.EDU : Hobbies are things people do when they should be    :
  91. : BIX: syssupport       :   sleeping.  --M.A.D.                               :
  92. : GEnie: M.DORMAN2      :                                                     :
  93. : PostalNet:            :                                                     :
  94. :   Box 8068            : Stonehenge was built by two drunks with no          :
  95. :   Tuscaloosa, AL      :   witnesses.  --P.S.McGhee                          :
  96. :               35486   :                                                     :
  97. -------------------------------------------------------------------------------
  98.  
  99. ------------------------------
  100.  
  101. Date: 27 Jun 91 03:12:17 GMT
  102. From: haven.umd.edu!wam.umd.edu!dmb@purdue.edu (David M. Baggett)
  103. Subject: Latest Picture Formats List (Lots of Changes!)  [LONG]
  104. To: Info-Atari16@naucse.cse.nau.edu
  105.  
  106.    After several months of neglecting to update the list, I've made all the
  107. changes that were in the queue all at once.  Here's a summary of what's
  108. new and improved, and who contributed what:
  109.  
  110.         o Clarification made to IFF format (Jim Omura)
  111.         o Spectrum Smooshed (*.SPS) format added (Shamus McBride)
  112.         o Lars Michael's RGB Intermediate (*.RGB) format added (Lars Michael)
  113.         o ComputerEyes Raw Data (*.CE?) format added (G. "Maddog" Knauss)
  114.         o Animaster Sprite Bank (*.ASB) format added (Neil Forsyth)
  115.         o STOS sprite (*.MBK) format added (me)
  116.         o Cyber Paint Sequence (*.SEQ) format added (me)
  117.  
  118. Thanks to everyone who's contributed info in the past few months!  Also,
  119. if I've left something out, don't hesitate to let me know.  I think I got
  120. all the changes that were "on the stack" in there, but I may have missed
  121. something, so don't be bashful if I've left you out.
  122.  
  123. As always, everyone is encouraged to replace older versions of The List
  124. with this one.  This time around it's particularly important since so many
  125. changes have been made.
  126.  
  127. Thanks all,
  128.  
  129. Dave Baggett
  130. dmb@wam.umd.edu
  131.  
  132. ----------------------------------- >8 ----------------------------------------
  133.  
  134.                            ST Picture Formats
  135.                            ------------------
  136.                                Edited by:
  137.  
  138.                               David Baggett
  139.                          5640 Vantage Point Road
  140.                          Columbia, MD  21044 USA
  141.                              (301)  596-4779
  142.  
  143.                                 Internet:
  144.                              dmb@wam.umd.edu
  145.                                dmb@tis.com
  146.  
  147.                    (Please report errors or additions.)
  148.  
  149.         Copyright (C) 1988, 1989, 1990, 1991 by David M. Baggett
  150.  
  151.  
  152.     Non-profit redistribution of this document is permitted, provided
  153.     the document is not modified in any way.
  154.  
  155.     Reproduction of this document in whole or in part for  commercial
  156.     purposes is expressly forbidden without the prior written consent
  157.     of David M. Baggett.
  158.  
  159.     The  information  presented here is not guaranteed to be correct.
  160.     The editor and contributors will in no event be liable for direct,
  161.     indirect, incidental, or consequential damages resulting from the
  162.     use of the information in this document.
  163.  
  164.     This document is the product of many hours of volunteer work by a
  165.     large number of people. Please respect this -- do not violate the
  166.     distribution policy.
  167.  
  168.  
  169.                               CONTRIBUTORS
  170.  
  171.     Steve Belczyk  Phil Blanchfield  Jason Blochowiak  John Brochu**
  172.         David Brooks  Daniel Deimert  Neil Forsyth  Stefan Hoehn
  173.     Gerfried Klein  G. "Maddog" Knauss  Ken MacLeod  Shamus McBride
  174.          Jim McCabe  Lars Michael  Darek Mihocka  David Mumper
  175.            George Nassas  Jim Omura  George Seto  Joe Smith
  176.               Greg Wageman  Roland Waldi*  Gerry Wheeler
  177.  
  178.  
  179.                                 Contents
  180.                                 --------
  181.  
  182.         NEOchrome                               *.NEO
  183.         NEOchrome Animation                     *.ANI
  184.         DEGAS                                   *.PI?   ? = 1, 2, 3
  185.         DEGAS Elite                             *.PI?   ? = 1, 2, 3
  186.         DEGAS Elite (Compressed)                *.PC?   ? = 1, 2, 3
  187.         Tiny                                    *.TN?   ? = 1, 2, 3, Y
  188.         Spectrum 512                            *.SPU
  189.         Spectrum 512 (Compressed)               *.SPC
  190.         Spectrum 512 (Smooshed)                 *.SPS
  191.         Art Director                            *.ART
  192.         C.O.L.R. Object Editor Mural            *.MUR
  193.         Doodle                                  *.DOO
  194.         Cyber Paint Sequence                    *.SEQ
  195.         Animatic Film                           *.FLM
  196.         Animaster Sprite Bank                   *.ASB
  197.         STOS                                    *.MBK
  198.         GEM Bit Image                           *.IMG
  199.         STAD                                    *.PAC
  200.         Imagic Film/Picture                     *.IC?   ? = 1, 2, 3
  201.         IFF                                     *.IFF
  202.         RGB Intermediate Format                 *.RGB
  203.         ComputerEyes Raw Data Format            *.CE?   ? = 1, 2
  204.         MacPaint                                *.MAC
  205.         PackBits Compression Algorithm
  206.  
  207.  
  208.                         Introductory Information
  209.                         ------------------------
  210. word    = 2 bytes
  211. long    = 4 bytes
  212. palette = Hardware color palette, stored as 16 words.  First word is
  213.           color register zero (background), last word is color register
  214.           15.  Each word has the form:
  215.  
  216.           Bit:  (MSB) 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 (LSB)
  217.                       -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  218.                        0  0  0  0  0 R2 R1 R0  0 G2 G1 G0  0 B2 B1 B0
  219.  
  220.           R2 = MSB of red intensity
  221.           R0 = LSB of red intensity
  222.  
  223.           G2 = MSB of green intensity
  224.           G0 = LSB of green intensity
  225.  
  226.           B2 = MSB of blue intensity
  227.           B0 = LSB of blue intensity
  228.  
  229.           Intensity ranges from 0 (color not present) to 7 (highest
  230.           intensity).
  231.  
  232.           Example: { red = 7, green = 3, blue = 5 } -> 0735 (hex)
  233.  
  234.           Caveat:  It is wise to mask off the upper four bits of each
  235.                    palette entry, since a few programs store special
  236.                    information there (most notably Art Studio).
  237.  
  238.  
  239.                              The Formats
  240.                              -----------
  241.  
  242. <NEOchrome>     *.NEO
  243.  
  244. 1 word          flag byte [always 0]
  245. 1 word          resolution [0 = low res, 1 = medium res, 2 = high res]
  246. 16 words        palette
  247. 12 bytes        filename [usually "        .   "]
  248. 1 word          color animation limits.  High bit (bit 15) set if color
  249.                 animation data is valid.  Low byte contains color animation
  250.                 limits (4 most significant bits are left/lower limit,
  251.                 4 least significant bits are right/upper limit).
  252. 1 word          color animation speed and direction.  High bit (bit 15) set
  253.                 if animation is on.  Low order byte is # vblanks per step.
  254.                 If negative, scroll is left (decreasing).  Number of vblanks
  255.                 between cycles is |x| - 1
  256. 1 word          # of color steps (as defined in previous word) to display
  257.                 picture before going to the next.  (For use in slide shows)
  258. 1 word          image X offset [unused, always 0]
  259. 1 word          image Y offset [unused, always 0]
  260. 1 word          image width [unused, always 320]
  261. 1 word          image height [unused, always 200]
  262. 33 words        reserved for future expansion
  263. 16000 words     picture data (screen memory)
  264. -----------
  265. 32128 bytes     total
  266.  
  267.  
  268. <NEOchrome Animation>        *.ANI
  269.  
  270. NOTE:      To get this feature on versions 0.9 and later select the Grabber
  271.         icon and click both mouse buttons in the eye of the second R in the
  272.         word GRABBER.
  273.            Interestingly enough, some versions of NEO only require you
  274.         to press the right button, not both.  Hmmm...
  275.  
  276. 1 long          magic number BABEEBEA (hex) (seems to be ignored)
  277. 1 word          width of image in bytes (always divisible by 8)
  278. 1 word          height of image in scan lines
  279. 1 word          size of image in bytes + 10 (!)
  280. 1 word          x coordinate of image (must be divisible by 16) - 1
  281. 1 word          y coordinate of image - 1
  282. 1 word          number of frames
  283. 1 word          animation speed (# vblanks to delay between frames)
  284. 1 long          reserved; should be zero
  285. --------
  286. 22 bytes        total for header
  287.  
  288. ? words         image data (words of screen memory) for each frame, in
  289.                 order
  290.  
  291.  
  292. <DEGAS>         *.PI1 (low resolution)
  293.                 *.PI2 (medium resolution)
  294.                 *.PI3 (high resolution)
  295.  
  296. 1 word          resolution (0 = low res, 1 = medium res, 2 = high res)
  297.                 Other bits may be used in the future; use a simple bit
  298.                 test rather than checking for specific word values.
  299. 16 words        palette
  300. 16000 words     picture data (screen memory)
  301. -----------
  302. 32034 bytes     total
  303.  
  304.  
  305. <DEGAS Elite>   *.PI1 (low resolution)
  306.                 *.PI2 (medium resolution)
  307.                 *.PI3 (high resolution)
  308.  
  309. 1 word          resolution (0 = low res, 1 = medium res, 2 = high res)
  310.                 Other bits may be used in the future; use a simple bit
  311.                 test rather than checking for specific word values.
  312. 16 words        palette
  313. 16000 words     picture data (screen memory)
  314. 4 words         left color animtion limit table (starting color numbers)
  315. 4 words         right color animation limit table (ending color numbers)
  316. 4 words         animation channel direction flag (0 = left, 1 = off, 2 = right)
  317. 4 words         128 - animation channel delay in 1/60's of a second. [0 - 128]
  318.                 (I.e., subtract word from 128 to get 1/60th's of a second.)
  319. -----------
  320. 32066 bytes     total
  321.  
  322.  
  323. <DEGAS Elite (Compressed)>      *.PC1 (low resolution)
  324.                                 *.PC2 (medium resolution)
  325.                                 *.PC3 (high resolution)
  326.  
  327. 1 word          resolution (same as Degas, but high order bit is set;
  328.                 i.e., hex 8000 = low res, hex 8001 = medium res,
  329.                 hex 8002 = high res).  Other bits may be used in the
  330.                 future; use a simple bit test rather than checking
  331.                 for specific word values.
  332. 16 words        palette
  333. < 32000 bytes   control/data bytes
  334. 4 words         left color animation limit table (starting color numbers)
  335. 4 words         right color animation limit table (ending color numbers)
  336. 4 words         animation channel direction flag [0 = left, 1 = off, 2 = right]
  337. 4 words         128 - animation channel delay in 1/60's of a second. [0 - 128]
  338.                 (I.e., subtract word from 128 to get 1/60th's of a second.)
  339. -----------
  340. < 32066 bytes   total
  341.  
  342. Compression Scheme:
  343.  
  344.    PackBits compression is used (see below).  Each scan line is compressed
  345. separately; i.e., all data for a given scan line appears before any data
  346. for the next scan line.  The scan lines are specified from top to bottom
  347. (i.e., 0 is first).  For each scan line, all the data for a given bit plane
  348. appears before any data for the next higher order bit plane.  Note that this
  349. is identical to the IFF 'BODY' image data.
  350.    To clarify:  The first data in the file will be the data for the lowest
  351. order bit plane of scan line zero, followed by the data for the next higher
  352. order bit plane of scan line zero, etc., until all bit planes have been
  353. specified for scan line zero.  The next data in the file will be the data
  354. for the lowest order bit plane of scan line one, followed by the data for
  355. the next higher order bit plane of scan line one, etc., until all bit planes
  356. have been specified for all scan lines.
  357.  
  358. Caveats:
  359.  
  360.    DEGAS Elite's picture loading routine places some restrictions on
  361. compressed DEGAS files:
  362.  
  363.         o Elite uses a 40-byte buffer to store data being decompressed.
  364.  
  365.         o Whenever a control command is encountered, bytes are stuffed
  366.         in this buffer.
  367.  
  368.         o The buffer is only emptied when there are EXACTLY 40
  369.         characters in it.
  370.  
  371. The important conclusion here is that
  372.  
  373.         No control command may cause the buffer to have more than 40
  374.         bytes in it.  In other words, all control commands must end on
  375.         or before the 40-byte boundary.
  376.  
  377. Any picture violating the last condition will cause Elite to get a bus
  378. error when the picture is loaded.
  379.  
  380.  
  381. <Tiny>  *.TNY (any resolution)
  382.         *.TN1 (low resolution)
  383.         *.TN2 (medium resolution)
  384.         *.TN3 (high resolution)
  385.  
  386.    Several people have reported sightings of mutated Tiny pictures that
  387. do not follow the standard format, so let's be careful out there.  What
  388. is described here is the format that David Mumper's original
  389. TNYSTUFF.PRG produces.
  390.  
  391. 1 byte          resolution (same as NEO, but +3 indicates rotation
  392.                 information also follows)
  393.  
  394. If resolution > 2 {
  395. 1 byte          left and right color animation limits.  High 4 bits
  396.                 hold left (start) limit; low 4 bits hold right (end) limit
  397. 1 byte          direction and speed of color animation (negative value
  398.                 indicates left, positive indicates right, absolute value
  399.                 is delay in 1/60's of a second.
  400. 1 word          color rotation duration (number of iterations)
  401. }
  402.  
  403. 16 words        palette
  404. 1 word          number of control bytes
  405. 1 word          number of data words
  406. 3-10667 bytes   control bytes
  407. 1-16000 words   data words
  408. -------------
  409. 42-32044 bytes  total
  410.  
  411. Control byte meanings:
  412.  
  413.         For a given control byte, x:
  414.  
  415.         x < 0   Absolute value specifies the number of unique words to
  416.                 take from the data section (from 1 to 127)
  417.         x = 0   1 word is taken from the control section which specifies
  418.                 the number of times to repeat the next data word (from
  419.                 128 to 32767)
  420.         x = 1   1 word is taken from the control section which specifies
  421.                 the number of unique words to be taken from the data
  422.                 section (from 128 - 32767)
  423.         x > 1   Specifies the number of times to repeat the next word
  424.                 taken from the data section (from 2 to 127)
  425.  
  426. Format of expanded data:
  427.  
  428.    The expanded data is not simply screen memory bitmap data; instead, the
  429. data is divided into four sets of vertical columns.  (This results in
  430. better compression.)  A column consists of one specific word taken
  431. from each scan line, going from top to bottom.  For example, column 1
  432. consists of word 1 on scanline 1 followed by word 1 on scanline 2, etc.,
  433. followed by word 1 on scanline 200.
  434.    The columns appear in the following order:
  435.  
  436.    1st set contains columns 1, 5,  9, 13, ..., 69, 73, 77 in order
  437.    2nd set contains columns 2, 6, 10, 14, ..., 70, 74, 78 in order
  438.    3rd set contains columns 3, 7, 11, 15, ..., 71, 75, 79 in order
  439.    4th set contains columns 4, 8, 12, 16, ..., 72, 76, 80 in order
  440.  
  441. Note that Tiny partitions the screen this way regardless of resolution; i.e.,
  442. these aren't bitplanes.  For example, medium resoltion only has two bitplanes,
  443. but Tiny still divides medium resolution pictures into four parts.
  444.  
  445.  
  446. <Spectrum 512>  *.SPU
  447.  
  448. 80 words        first scan line of picture (unused) -- should be zeroes
  449. 15920 words     picture data (screen memory) for scan lines 1 through 199
  450. 9552 words      3 palettes for each scan line (the top scan line is
  451.                 not included because Spectrum 512 can't display it)
  452. -----------
  453. 51104 bytes     total
  454.  
  455. Note that the Spectrum 512 mode's three palette changes per scan
  456. line allow more colors on the screen than normally possible, but a
  457. tremendous amount of CPU time is required to maintain the image.
  458.  
  459. The Spectrum format specifies a palette of 48 colors for each scan line.
  460. To decode a Spectrum picture, one must be know which of these 48 colors
  461. are in effect for a given horizontal pixel position.
  462.  
  463. Given an x-coordinate (from 0 to 319) and a color index (from 0 to 15),
  464. the following C function will return the proper index into the Spectrum
  465. palette (from 0 to 47):
  466.  
  467. /*
  468.  *  Given an x-coordinate and a color index, returns the corresponding
  469.  *  Spectrum palette index.
  470.  *
  471.  *  by Steve Belczyk; placed in the public domain December, 1990.
  472.  */
  473. int
  474. FindIndex(x, c)
  475.         int x, c;
  476. {
  477.         int x1;
  478.  
  479.         x1 = 10 * c;
  480.  
  481.         if (1 & c)              /* If c is odd */
  482.                 x1 = x1 - 5;
  483.         else                    /* If c is even */
  484.                 x1 = x1 + 1;
  485.  
  486.         if (x >= x1 && x < x1 + 160)
  487.                 c = c + 16;
  488.         else if (x >= x1 + 160)
  489.                 c = c + 32;
  490.  
  491.         return c;
  492. }
  493.  
  494.  
  495. <Spectrum 512 (Compressed)>        *.SPC
  496.  
  497. 1 word          flag word [$5350 or "SP"]
  498. 1 word          reserved for future use [always 0]
  499. 1 long          length of data bit map
  500. 1 long          length of color bit map
  501. <= 32092 bytes  compressed data bit map
  502. <= 17910 bytes  compressed color bit map
  503. --------------
  504. <= 50014 bytes  total
  505.  
  506. Data compression:
  507.  
  508.    Compression is via a modified run length encoding (RLE) scheme,
  509. similar to DEGAS compressed and Tiny.  The data map is stored as a
  510. sequence of records.  Each record consists of a header byte followed by
  511. one or more data bytes.  The meaning of the header byte is as follows:
  512.  
  513.         For a given header byte, x:
  514.  
  515.            0 <= x <= 127   Use the next x + 1 bytes literally (no repetition)
  516.         -128 <= x <=  -1   Use the next byte -x + 2 times
  517.  
  518. The data appears in the following order:
  519.  
  520.         1. Picture data, bit plane 0, scan lines 1 - 199
  521.         2. Picture data, bit plane 1, scan lines 1 - 199
  522.         3. Picture data, bit plane 2, scan lines 1 - 199
  523.         4. Picture data, bit plane 3, scan lines 1 - 199
  524.  
  525. Decompression of data ends when 31840 data bytes have been used.
  526.  
  527. Color map compression:
  528.  
  529.    Each 16-word palette is compressed separately.  There are three
  530. palettes for each scan line (597 total).  The color map is stored as a
  531. sequence of records.  Each record starts with a 1-word bit vector which
  532. specifies which of the 16 palette entries are included in the data
  533. following the bit vector (1 = included, 0 = not included).  If a palette
  534. entry is not included, it is assumed to be zero (black).  The least
  535. significant bit of the bit vector refers to palette entry zero, while the
  536. most significant bit refers to palette entry 15.  Bit 15 must be zero,
  537. since Spectrum 512 does not use palette entry 15.  Bit 0 should also be
  538. zero, since Spectrum 512 always makes the background color black.
  539.    The words specifying the values for the palette entries indicated in
  540. the bit vector follow the bit vector itself, in order (0 - 15).
  541.  
  542. NOTE:   Regarding Spectrum pictures, Shamus McBride reports the following:
  543.  
  544.         "... [The Picture Formats List] says bit 15 of the color map vector
  545.         must be zero. I've encountered quite a few files where [bit 15] is
  546.         set (with no associated palette entry)..."
  547.  
  548.  
  549. <Spectrum 512 (Smooshed)>          *.SPS
  550.  
  551.    This format compresses Spectrum 512 pictures better than the standard
  552. method.  There are at least two programs that support this format, SPSLIDEX
  553. and ANISPEC, although the two seem to differ slightly in their interpretation
  554. of the format.
  555.    One point of interest: Shamus McBride deciphered this format without an ST!
  556.  
  557. 1 word          5350 (hex) ("SP")
  558. 1 word          0 (reserved for future use)
  559. 1 long          length of data bit map
  560. 1 long          length of color bit map
  561. <= ? bytes      compressed data bit map
  562. <= ? bytes      compressed color bit map
  563. ----------
  564. < ?  bytes      total
  565.  
  566. Data compression:
  567.  
  568.    Compression is via a modified run length encoding (RLE) scheme,
  569. similar to that used in Spectrum Compressed (*.SPC) pictures.
  570.  
  571. The data map is stored as a sequence of records.  Each record consists of a
  572. header byte followed by one or more data bytes.  The meaning of the header
  573. byte is as follows:
  574.  
  575.         For a given header byte, x (unsigned):
  576.  
  577.           0 <= x <= 127    Use the next byte x + 3 times
  578.         128 <= x <= 255    Use the next x - 128 + 1 bytes literally
  579.                            (no repetition)
  580.  
  581. There are two kinds of *.SPS files.
  582.  
  583. The data may appear in the same order as *.SPC files (SPSLIDEX format?):
  584.  
  585.         1. Picture data, bit plane 0, scan lines 1 - 199
  586.         2. Picture data, bit plane 1, scan lines 1 - 199
  587.         3. Picture data, bit plane 2, scan lines 1 - 199
  588.         4. Picture data, bit plane 3, scan lines 1 - 199
  589.  
  590. The second variant (ANISPEC format?) encodes the data as byte wide vertical
  591. strips:
  592.  
  593.         Picture data, bit plane 0, scan line   1, columns   0 -   7.
  594.         Picture data, bit plane 0, scan line   2, columns   0 -   7.
  595.         Picture data, bit plane 0, scan line   3, columns   0 -   7.
  596.         . . .
  597.         Picture data, bit plane 0, scan line 199, columns   0 -   7.
  598.         Picture data, bit plane 0, scan line   1, columns   8 -  15.
  599.         Picture data, bit plane 0, scan line   2, columns   8 -  15.
  600.         . . .
  601.         Picture data, bit plane 0, scan line 199, columns 312 - 319.
  602.         Picture data, bit plane 1, scan line   1, columns   0 -   7.
  603.         . . .
  604.         Picture data, bit plane 3, scan line 198, columns 312 - 319
  605.         Picture data, bit plane 3, scan line 199, columns 312 - 319.
  606.  
  607. A for loop to process that data would look like
  608.  
  609.         for (plane = 0; plane < 4; plane++)
  610.             for (x = 0; x < 320; x += 8)
  611.                 for (y = 1; y < 200; y++)
  612.                     for (x1 = 0; x1 < 8; x1++)
  613.                         image[y, x + x1] = ...
  614.  
  615. Color map compression:
  616.  
  617.    Color map compression is similar to *.SPC color map compression, but
  618. the map is compressed as a string of bits, rather than words.  There are
  619. 597 records (one for each palette). Each record is composed of a 14-bit
  620. header followed by a number of 9-bit palette entries.  The 14-bit header
  621. specifies which palette entries follow (1 = included, 0 = not included).
  622. The most significant bit of the header refers to palette entry 1, while
  623. the least significant bit refers to palette 14.  Palette entries 0 and 15
  624. are forced to black (zero).  Each palette entry is encoded as "rrrgggbbb".
  625.  
  626. The format of the palette is described above in the section on uncompressed
  627. Spectrum pictures (*.SPU).
  628.  
  629.  
  630. <Art Director>  *.ART (low resolution only)
  631.  
  632. 16000 words     picture data (screen memory)
  633. 16 words        palette
  634. 15 * 16 words   15 more palettes for animation
  635. -------------
  636. 32512 bytes     total
  637.  
  638.  
  639. <C.O.L.R. Object Editor Mural>        *.MUR (low resolution only)
  640.  
  641. 16000 words     picture data (screen memory)
  642.                 (palettes are stored in separate files)
  643. -----------
  644. 32000 bytes     total
  645.  
  646.  
  647. <Doodle>        *.DOO (high resolution only)
  648.  
  649. 16000 words     picture data (screen memory)
  650. -----------
  651. 32000 bytes     total
  652.  
  653.  
  654. <Cyber Paint Sequence>  *.SEQ (low resolution only)
  655.  
  656.    This format, while fairly complex, yields excellent compression of animated
  657. images while offering reasonably fast decompression times.
  658.  
  659. 1 word          magic number [$FEDB or $FEDC]
  660. 1 word          version number
  661. 1 long          number of frames
  662. 1 word          speed (high byte is vblanks per frame)
  663. 118 bytes       reserved
  664. ---------
  665. 128 bytes       total for .SEQ header
  666.  
  667. for each frame {
  668. 1 word          type (ignored?)
  669. 1 word          resolution [always 0]
  670. 16 words        palette
  671. 12 bytes        filename [usually "        .   "]
  672. 1 word          color animation limits [not used]
  673. 1 word          color animation speed and direction [not used]
  674. 1 word          number of color steps [not used]
  675. 1 word          x offset for this frame [0 - 319]
  676. 1 word          y offset for this frame [0 - 199]
  677. 1 word          width of this frame, in pixels (may be 0, see below)
  678. 1 word          height of this frame, in pixels (may be 0, see below)
  679. 1 byte          operation [0 = copy, 1 = exclusive or]
  680. 1 byte          storage method [0 = uncompressed, 1 = compressed]
  681. 1 long          length of data in bytes (if the data is compressed, this
  682.                 will be the size of the compressed data BEFORE decompression)
  683. 60 bytes        reserved
  684. --------
  685. 128 bytes       total for frame header
  686.  
  687. ? bytes         data
  688. }
  689.  
  690.    Frames are "delta-compressed," meaning that only the changes from one
  691. frame to the next are stored.  On the ST, .SEQ files are always full-screen
  692. low resolution animations, so the sequence resulting from expanding all the
  693. data will be n 320 by 200 pixel low resolution screens, where n is given in
  694. the .SEQ header.
  695.  
  696.    Since only the changes from frame to frame are stored, image data for a
  697. frame will rarely be 320x200 (except for the very first frame, which will
  698. always be a full screen).  Instead what is stored is the smallest rectangular
  699. region on the screen that contains all the changes from the previous frame to
  700. the current frame.  The x offset and y offset in the frame header determine
  701. where the upper left corner of the "change box" lies, and the width and height
  702. specify the box's size.
  703.  
  704.    Additionally, each "change box" is stored in one of five ways.  For each
  705.    of these, the screen is assumed to have the full-screen image from the last
  706.    frame on it.
  707.  
  708.    o uncompressed copy:  The data for this frame is uncompressed image data,
  709.      and is simply copied onto the screen at position (x, y) specified
  710.      in the frame header.
  711.  
  712.    o uncompressed eor:  The data for this frame is exclusive or'ed with the
  713.      screen at position (x, y).
  714.  
  715.    o compressed copy:  The data for this frame must be decompressed (see
  716.      below), and then copied onto the screen at position (x, y) specified
  717.      in the frame header.
  718.  
  719.    o compressed eor:  The data for this frame must be decompressed (see
  720.      below), and then exclusive or'ed with the screen RAM at position (x, y).
  721.  
  722.    o null frame:  The width and/or height of this frame is 0, so this
  723.      frame is the same as the previous frame.
  724.  
  725.    Of the 5 methods above, the one that results in the smallest amount
  726.    of data being stored for a particular is used for that frame.
  727.  
  728. Compression Scheme:
  729.  
  730.    Compression is similar to that employed by Tiny, but is not quite as
  731. space-efficient.
  732.  
  733. Control word meanings:
  734.  
  735.         For a given control word, x:
  736.  
  737.         x < 0   Absolute value specifies the number of unique words to
  738.                 take from the data section (from 1 to 32767).
  739.         x > 0   Specifies the number of times to repeat the next word
  740.                 taken from the data section (from 1 to 32767).
  741.  
  742.         Note that a control word of 0 is possible but meaningless.
  743.  
  744. Format of expanded data:
  745.  
  746.    The expanded data is not simply screen memory bitmap data; instead the four
  747. bitplanes are separated, and the data within each bitplane is presented
  748. vertically instead of horizontally.  (This results in better compression.)
  749.  
  750.    To clarify, data for a full screen would appear in the following order:
  751.  
  752.    bitplane 0, word 0, scanline 0
  753.    bitplane 0, word 0, scanline 1
  754.    ...
  755.    bitplane 0, word 0, scanline 199
  756.    bitplane 0, word 1, scanline 0
  757.    bitplane 0, word 1, scanline 1
  758.    ...
  759.    bitplane 0, word 1, scanline 199
  760.    ...
  761.    bitplane 0, word 79, scanline 199
  762.    bitplane 1, word 0, scanline 0
  763.    ...
  764.    bitplane 3, word 79, scanline 199
  765.  
  766. Note however, that the data does not usually refer to an entire screen, but
  767. rather to the smaller "change box," whose size is given in the frame header.
  768.  
  769.  
  770. <Animatic Film> *.FLM (low resolution only)
  771.  
  772. 1 word          number of frames
  773. 16 words        palette
  774. 1 word          speed (0 - 99; value is 99 - # vblanks to delay between frames)
  775. 1 word          direction (0 = forwards, 1 = backwards)
  776. 1 word          end action (what to do after the last frame)
  777.                 0 = pause, then repeat from beginning
  778.                 1 = immediately repeat from beginning
  779.                 2 = reverse (change direction)
  780. 1 word          width of film in pixels
  781. 1 word          height of film in pixels
  782. 1 word          Animatic version number (major) [< 2]
  783. 1 word          Animatic version number (minor)
  784. 1 long          magic number 27182818 (hex)
  785. 3 longs         reserved for expansion (should be all zeros)
  786. --------
  787. 32 words        total for header
  788.  
  789. ? words         image data (words of screen memory) for each frame, in order
  790.  
  791.  
  792. <Animaster Sprite Bank> *.ASB (low resolution only)
  793.  
  794. 1 word          number of frames - 1
  795. 1 word          ?
  796. 1 byte          maximum width, in pixels
  797. 1 byte          maximum height, in pixels
  798. 16 words        palette
  799. --------
  800. 38 bytes        total for header
  801.  
  802. For each frame {
  803. 1 word          width of this frame (in pixels) - 1
  804. 1 word          height of this frame (in pixels) - 1
  805. 1 word          ?
  806. ? words         image data (words of screen memory)
  807. }
  808.  
  809.  
  810. <STOS>  *.MBK
  811.  
  812. 9 words         ?
  813. 1 long          $19861987 (magic number?)
  814. 1 long          offset from this long to header for low resolution
  815.                 parameter block (if past end of file, no low res frames)
  816. 1 long          offset from this long to header for med resolution
  817.                 parameter block (if past end of file, no med res frames)
  818. 1 long          offset from this long to header for high resolution
  819.                 parameter block (if past end of file, no high res frames)
  820. 1 word          number of low resolution frames
  821. 1 word          number of medium resolution frames
  822. 1 word          number of high resolution frames
  823.  
  824. For each frame {
  825. 1 long          offset to data (probably only used internally by STOS)
  826. 1 byte          width in words (multiply by 16 to get width in pixels)
  827. 1 byte          height in pixels
  828. 1 byte          X hotspot location
  829. 1 byte          Y hotspot location
  830. }
  831.  
  832. (The format implies other stuff could be here.)
  833.  
  834. 1 long          ["PALT" $50414C54]
  835. 16 words        palette
  836.  
  837. ?               words of data for each frame, in the order mentioned in the
  838.                 header.  Monoplanar mask data follows image data for each frame.
  839. ----------
  840. ? words         total
  841.  
  842.    The frames often seem to be in semi-random order, not necessarily in
  843. the order they are to be animated.
  844.  
  845.  
  846. <GEM Bit Image> *.IMG
  847.  
  848. 1 word          version number of image file [1]
  849. 1 word          length of header in words [usually 8]
  850. 1 word          number of color planes [1 for monochrome]
  851. 1 word          pattern length in bytes [1-8, usually 2 for screen images]
  852. 1 word          pixel width in microns (1/1000 mm, 25400 microns per inch)
  853. 1 word          pixel height in microns
  854. 1 word          line width in pixels
  855. 1 word          number of lines
  856. -------
  857. ? words         header length defined in 2nd word of header
  858.  
  859. ? bytes         data
  860.  
  861. NOTES:  If the image is a color image (planes > 1), the planes are stored
  862. separately starting with plane 0.  There is, however, no standard way of
  863. storing the color palette.  Some programs may save the palette in separate
  864. files, some may extend the header.  For this reason, you should never
  865. assume the header is 8 words long, always get the header length from the
  866. 2nd word of the header.  Also, the line width in the 7th word is the number
  867. of pixels in a line.  Since the data is encoded in byte-wide packets, the
  868. actual unpacked line width is always a multiple of 8, and may be 1-7 pixels
  869. longer than the length specified in the header.
  870.  
  871. For each byte x in the data section,
  872.  
  873.         x = 0           Pattern/scanline run.
  874.                         Read the next byte, n (unsigned).
  875.  
  876.                         If n > 0 then:
  877.                                 Read a number of bytes equal to the "pattern
  878.                                 length" word in the header.  Repeat this
  879.                                 pattern n times.
  880.  
  881.                         If n = 0 then:
  882.                                 Scanline run.  Data for the next scanline
  883.                                 is to be used multiple times.  Read the
  884.                                 following record:
  885.  
  886.                                 1 byte          flag byte [$FF]
  887.                                 1 byte          number of times to use
  888.                                                 next scanline data
  889.  
  890.                                 The data for the next scanline follows,
  891.                                 compressed normally.
  892.  
  893.         x = 80 (hex)    Uncompressed bit string.  The next byte
  894.                         determines the number of bytes to use
  895.                         literally.  The literal data bytes follow.
  896.  
  897.         otherwise       Solid run.  The value of x determines
  898.                         what to draw.  The high bit specifies whether
  899.                         the pixels are set or cleared.  A 1 indicates
  900.                         a byte-run using $FF, a 0 indicates a byte-run
  901.                         using $00.  The low 7 bits, taken as an unsigned
  902.                         quantity, specify the length of the run in bytes.
  903.  
  904.  
  905. <STAD>          *.PAC (high resolution only)
  906.  
  907. 4 bytes         "pM86" (vertically packed) or "pM85" (horizontally packed)
  908. 1 byte          id byte
  909. 1 byte          pack byte (most frequently occuring byte in bitmap)
  910. 1 byte          "special" byte
  911. -------
  912. 7 bytes         total for header
  913.  
  914. ? bytes         data
  915.  
  916. The data is encoded as follows.  For each byte x in the data section:
  917.  
  918.         x = id byte             Read one more byte, n.  Use pack byte
  919.                                 n + 1 times.
  920.         x = "special" byte      Read two more bytes, d, and n (in order).
  921.                                 Use byte d n times.
  922.         otherwise               Use byte x literally.
  923.  
  924.  
  925. <Imagic Film/Picture>           *.IC1 (low resolution)
  926.                                 *.IC2 (medium resolution)
  927.                                 *.IC3 (high resolution)
  928.  
  929. 4 bytes         "IMDC"
  930. 1 word          resolution (0 = low res, 1 = medium res, 2 = high res)
  931. 16 words        palette
  932. 1 word          date (GEMDOS format)
  933. 1 word          time (GEMDOS format)
  934. 8 bytes         name of base picture file (for delta compression), or zeroes
  935. 1 word          length of data (?)
  936. 1 long          registration number
  937. 8 bytes         reserved
  938. 1 byte          compressed? (0 = no, 1 = yes)
  939.  
  940. If compressed {
  941. 1 byte          delta-compressed? (-1 = no, > -1 = yes)
  942. 1 byte          ?
  943. 1 byte          escape byte
  944. }
  945. -------
  946. 65 bytes        total for header (68 bytes if compressed)
  947.  
  948. ? bytes         data
  949.  
  950.    Compressed data may be either stand-alone or delta-compressed (relative
  951. to the base picture named in the header).  Delta compression involves
  952. storing only how the picture differs from the base picture (i.e., only
  953. portions of the screen that have changed are stored).  This is used to
  954. to encode animated sequences efficiently.
  955.  
  956. Compressed data, stand-alone:
  957.  
  958. For each byte x in the data section:
  959.  
  960.         x = escape byte         Read one more byte, n.  (n is unsigned).
  961.  
  962.                                 If n >= 2, use the next byte n times.
  963.                                 If n = 1, keep reading bytes until a
  964.                                 byte k not equal to 1 is encountered.
  965.                                 Then read the next byte d.
  966.                                 If the number of 1 bytes encountered is o,
  967.                                 use d (256 * o + k) times.  I.e.,
  968.  
  969.                                 if (n == 1) {
  970.                                         o = 0;
  971.                                         while (n == 1) {
  972.                                                 o++;
  973.                                                 n = next byte;
  974.                                         }
  975.  
  976.                                         k = n;
  977.                                         d = next byte;
  978.  
  979.                                         Use d (256 * o + k) times.
  980.                                 }
  981.                                 else {
  982.                                         d = next byte;
  983.                                         Use d (n) times.
  984.                                 }
  985.  
  986.         x != escape byte        Use x literally.
  987.  
  988. Compressed data, delta compressed:
  989.  
  990. For each byte x in the data section:
  991.  
  992.         x = escape byte         Read one more byte, n.  (n is unsigned).
  993.  
  994.                                 If n >= 3, use the next byte n times.
  995.                                 If n = 1, do the same as for n = 1 in
  996.                                 stand-alone compression (above).
  997.                                 If n = 2, then set n = next byte.
  998.                                         If n = 0, end of picture.
  999.                                         If n >= 2, take n bytes from base
  1000.                                         picture.
  1001.                                         If n = 1, do the same as for n = 1
  1002.                                         in stand-alone compression (above),
  1003.                                         but take (256 * o + k) bytes from
  1004.                                         base picture.
  1005.  
  1006.         x != escape byte        Use x literally.
  1007.  
  1008.  
  1009. <IFF Format>    *.IFF
  1010.  
  1011. 4 bytes         "FORM" (FORM chunk ID)
  1012. 1 long          length of file that follows
  1013. 4 bytes         "ILBM" (InterLeaved BitMap file ID)
  1014.  
  1015. 4 bytes         "BMHD" (BitMap HeaDer chunk ID)
  1016. 1 long          length of chunk [20]
  1017. 20 bytes        1 word = image width in pixels
  1018.                 1 word = image height in lines
  1019.                 1 word = image x-offset [usually 0]
  1020.                 1 word = image y-offset [usually 0]
  1021.                 1 byte = # bitplanes
  1022.                 1 byte = mask (0=no, 1=impl., 2=transparent, 3=lasso)
  1023.                 1 byte = compressed [1] or uncompressed [0]
  1024.                 1 byte = unused [0]
  1025.                 1 word = transparent color (for mask=2)
  1026.                 1 byte = x-aspect [5=640x200, 10=320x200/640x400, 20=320x400]
  1027.                 1 byte = y-aspect [11]
  1028.                 1 word = page width (usually the same as image width)
  1029.                 1 word = page height (usually the same as image height)
  1030.  
  1031. 4 bytes         "CMAP" (ColorMAP chunk ID)
  1032. 1 long          length of chunk [3*n where n is the # colors]
  1033. 3n bytes        3 bytes per RGB color.  Each color value is a byte
  1034.                 and the actual color value is left-justified in the
  1035.                 byte such that the most significant bit of the value
  1036.                 is the MSB of the byte.  (ie. a color value of 15 ($0F)
  1037.                 is stored as $F0)  The bytes are stored in R,G,B order.
  1038.  
  1039. 4 bytes         "CRNG" (Color RaNGe chunk ID)
  1040. 1 long          length of chunk [8]
  1041. 8 bytes         1 word = reserved [0]
  1042.                 1 word = animation speed (16384 = 60 steps per second)
  1043.                 1 word = active [1] or inactive [0]
  1044.                 1 byte = left/lower color animation limit
  1045.                 1 byte = right/upper color animation limit
  1046.  
  1047. 4 bytes         "CAMG" (Commodore AMiGa viewport mode chunk ID)
  1048. 1 long          length of chunk [4]
  1049. 1 long          viewport mode bits (bit 11 = HAM, bit 3 = interlaced)
  1050.  
  1051. 4 bytes         "BODY" (BODY chunk ID)
  1052. 1 long          length of chunk [# bytes of image data that follow]
  1053. ? bytes         actual image data
  1054.  
  1055. NOTES: Some of these chunks may not be present in every IFF file, and may
  1056. not be in this order.  You should always look for the ID bytes to find a
  1057. certain chunk.  All chunk IDs are followed by a long value that tells the
  1058. size of the chunk (note that "ILBM" is not a chunk ID).  This is the number of
  1059. bytes that FOLLOW the 4 ID bytes and size longword.  The exception to this is
  1060. the FORM chunk.  The size longword that follows the FORM ID is the size of the
  1061. remainder of the file.  The FORM chunk must always be the first chunk in an
  1062. IFF file.
  1063.  
  1064. The R,G,B ranges of AMIGA and ST are different (AMIGA 0...15, ST 0...7),
  1065. as is the maximum number of bitplanes (AMIGA: 5, ST: 4).
  1066.  
  1067. Format of body data
  1068.  
  1069. An expanded picture is simply a bitmap.  The packing method is PackBits
  1070. (see below), and is identical to MacPaint and DEGAS Elite compressed.
  1071.  
  1072. The (decompressed) body data appears in the following order:
  1073.  
  1074.         line 1 plane 0 ... line 1 plane 1 ... ... line 1 plane m
  1075.         [line 1 mask (if appropriate)]
  1076.         line 2 plane 0 ... line 2 plane 1 ... ... line 2 plane m
  1077.         [line 2 mask (if appropriate)]
  1078.         ...
  1079.         line x plane 0 ... line x plane 1 ... ... line x plane m
  1080.         [line x mask (if appropriate)]
  1081.  
  1082. The FORM chunk identifies the type of data:
  1083.  
  1084.         "ILBM" = interleaved bit map
  1085.         "8SVX" = 8-bit sample voice
  1086.         "SMUS" = simple music score
  1087.         "FTXT" = formatted text (Amiga)
  1088.  
  1089.  
  1090. <MacPaint>      *.MAC
  1091.  
  1092. 1 long          version number [0=ignore header, 2=header valid]
  1093. 38 * 8 bytes    8x8 brush/fill patterns.  Each byte is a pattern row,
  1094.                 and the bytes map the pattern rows top to bottom.  The
  1095.                 patterns are stored in the order they appear at the bottom
  1096.                 of the MacPaint screen top to bottom, left to right.
  1097. 204 bytes       unused
  1098. -------------
  1099. 512 bytes       total for header
  1100.  
  1101. < 51200 bytes   compressed bitmap data
  1102. -------------
  1103. < 51712 bytes   total
  1104.  
  1105. NOTE:  The version number is actually a flag to MacPaint to indicate if
  1106. the brush/fill patterns are present in the file.  If the version is 0,
  1107. the default patterns are used.  Therefore you can simply save a MacPaint
  1108. file by writing a blank header (512 $00 bytes), followed by the packed
  1109. image data.
  1110.  
  1111. Bitmap compression:
  1112.  
  1113.    The bitmap data is for a 576 pixel by 720 pixel monochrome image.
  1114. The packing method is PackBits (see below).  There are 72 bytes per
  1115. scan line.  Each bit represents one pixel; 0 = white, 1 = black.
  1116.  
  1117.  
  1118. <RGB Intermediate Format>       *.RGB (low resolution only)
  1119.  
  1120.    This format was invented by Lars Michael to facilitate conversions between
  1121. standard ST picture formats and higher resolution formats like GIF and IFF.
  1122. It supports 12 bits of color resolution by keeping the red, green and blue
  1123. components in separate bit planes.
  1124.  
  1125. 1 word          resolution (ignored)
  1126. 16 word         palette (ignored)
  1127. 16000 words     red plane (screen memory)
  1128. 1 word          resolution (ignored)
  1129. 16 word         palette (ignored)
  1130. 16000 words     green plane (screen memory)
  1131. 1 word          resolution (ignored)
  1132. 16 word         palette (ignored)
  1133. 16000 words     blue plane (screen memory)
  1134. ------------
  1135. 96102 bytes     total
  1136.  
  1137. The format was derived by concatenating three DEGAS .PI1 files together --
  1138. one for each color gun.  The RGB value for a pixel is constructed by looking
  1139. at the appropriate pixel in the red plane, green plane, and blue plane.  The
  1140. bitplanes are in standard ST low resolution screen RAM format, but where pixel
  1141. values in screen RAM refer to palette entries (0 through 15), pixel values
  1142. here correspond to absolute R, G, and B values.  The red, green, and blue
  1143. components for each pixel range from 0 to 15 (4 bits), yielding a total of
  1144. 12 bits of color information per pixel.  Not coincidentally, this is exactly
  1145. the format of ST palette entries (although on ST's without the extended
  1146. palette only the lower 3 bits of each color component are used).
  1147.  
  1148. You can view a single bit plane on a standard ST by splitting the .RGB file
  1149. into its three DEGAS .PI1 components and setting the palette to successively
  1150. brighter shades of gray.
  1151.  
  1152.  
  1153. <ComputerEyes Raw Data Format>  *.CE1 (low resolution)
  1154.                                 *.CE2 (medium resolution)
  1155.  
  1156. 1 long          [$45594553 or "EYES"]
  1157. 1 word          resolution [0 = low res, 1 = medium res]
  1158. 8 words         ?
  1159. If resolution = 0 {
  1160. 64000 bytes     red plane, 320 x 200, 1 pixel per byte
  1161. 64000 bytes     green plane, 320 x 200, 1 pixel per byte
  1162. 64000 bytes     blue plane, 320 x 200, 1 pixel per byte
  1163. ------------
  1164. 192022 bytes    total
  1165. }
  1166. else If resolution = 1 {
  1167. 128000 words    640 x 200, 1 pixel per word
  1168. ------------
  1169. 256022 bytes    total
  1170. }
  1171.  
  1172.    This is almost two formats in one:
  1173.  
  1174.         Low resolution:
  1175.  
  1176.            The planes are arranged vertically, instead of horizontally.
  1177.         The first byte is the red component of pixel (0,0), the second is (0,1),
  1178.         and the third (0,2).  The 201st corresponds to (1,0), etc.  The 64001st
  1179.         byte is the green component of (0,0).
  1180.            Only the low six bits of each byte are used.
  1181.  
  1182.         Medium resolution:
  1183.  
  1184.            The picture is arranged vertically, instead of horizontally.
  1185.         The first word is pixel (0,0), the second is (0,1), and the third
  1186.         (0,2).  The 200th is (1,0) etc.
  1187.            Each word is divided up into the RGB values for the corresponding
  1188.         pixel, as follows:
  1189.  
  1190.           Bit:  (MSB) 15 14 13 12 11 10 09 08 07 06 05 04 03 02 01 00 (LSB)
  1191.                       -- -- -- -- -- -- -- -- -- -- -- -- -- -- -- --
  1192.                        0 B4 B3 B2 B1 B0 G4 G3 G2 G1 G0 R4 R3 R2 R1 R0
  1193.  
  1194.         Bit 15 is not used.
  1195.  
  1196.  
  1197. <PackBits Compression Algorithm>
  1198.  
  1199. The following packing algorithm originated on the Mac, was adopted by
  1200. Electronic Arts/Commodore for use in the IFF standard, and then by Tom
  1201. Hudson for use in DEGAS Elite.  The algorithm is currently used in
  1202. MacPaint, IFF, and DEGAS Elite compressed file formats.  Each scan line
  1203. is packed separately, and packing never extends beyond a scan line.
  1204.  
  1205. For a given control byte 'n':
  1206.     0 <= n <= 127   : use the next n + 1 bytes literally (no repetition).
  1207.  -127 <= n <= -1    : use the next byte -n + 1 times.
  1208.          n = -128   : no operation, not used.
  1209.  
  1210. -------------------------------------------------------------------------
  1211.  
  1212. * Roland Waldi contributed extensive information on the following formats:
  1213.  
  1214.         GEM, IMG, Doodle, STAD, Imagic Film/Picture, Art Director, IFF
  1215.  
  1216. ** John Brochu, ST picture formats guru, provided sage advice and many
  1217.    corrections to the following formats:
  1218.  
  1219.         NeoChrome, DEGAS Elite Compressed, Spectrum 512 Compressed,
  1220.         GEM Bit Image, IFF, MacPaint
  1221.  
  1222. Version of Wed Jun 26 22:53:08 EDT 1991
  1223.  
  1224. ------------------------------
  1225.  
  1226. Date: 26 Jun 91 10:42:55 GMT
  1227. From: mcsun!unido!mcshh!the.fawn@uunet.uu.net (Thomas Quester)
  1228. Subject: lharc woes (AGAIN, was Is musedt.lzh corrupted?)
  1229. To: Info-Atari16@naucse.cse.nau.edu
  1230.  
  1231. >My complaint with lharc is that's its's too damn slow. I still mainly use zoo
  1232. >because I just can't be bothered to spend hours waiting for lharc.
  1233.  
  1234. >As long as people stop using the brain-dead Arc I really don't mind which one
  1235. >they use... let's hope we can avoid tar and compress, at least until Minix
  1236. >support in MiNT is better. :-)
  1237.  
  1238. If you are using the wrong version of LHarc, it IS slow. The slowes of them
  1239. all is John Webbs 0.xx. The LZH 1.13.20 is about 4 times faster than the
  1240. original 1.13, because the whole compression and decompression is entierly
  1241. written in assembler. It should be about twice as fast as LHA 1.21 in
  1242. decoding and about 3 times faster in coding.
  1243.  
  1244. ----
  1245.  
  1246. Thomas Quester * Lampenland 9 * 2050 Hamburg 80
  1247.  
  1248. ------------------------------
  1249.  
  1250. Date: 26 Jun 91 10:51:16 GMT
  1251. From: mcsun!unido!mcshh!the.fawn@uunet.uu.net (Thomas Quester)
  1252. Subject: lharc woes (AGAIN, was Is musedt.lzh corrupted?)
  1253. To: Info-Atari16@naucse.cse.nau.edu
  1254.  
  1255. >this is not the point. the fact that i can (eventually) FIND a version
  1256. >of lharc to unpack any particulary archive may sound like there is no
  1257. >problem at all. there is. the SEARCH for the lharc version to do it IS
  1258. >the problem. until all the various lharc developers (many of whose work
  1259. >by itself is excellent, BTW) get together and standardize an extensible
  1260. >file format, this is basically still russian roulette.
  1261. If you have any problem with any archive and the version 1.13.20 or newer,
  1262. why not send it to me. If the archive is not damaged or if it is'nt coded
  1263. with LHA 2.xx on a PC, I will adapt my version of LHarc to read this kind
  1264. of archives.
  1265.  
  1266. If you get an error-message "Unknown method", your archive is packed with
  1267. LHA 2.xx on a PC. This is impossible to adapt to the atari st until there
  1268. are sources available,
  1269.  
  1270. If you get CRC-Errors on many files, you probably have a damaged archive.
  1271. You could then try to download it again.
  1272.  
  1273. ---
  1274. Thomas Quester * Lampenland 9 * 2050 Hamburg 80
  1275.  
  1276. ------------------------------
  1277.  
  1278. Date: 27 Jun 91 00:08:15 GMT
  1279. From: kawakami%ocf.berkeley.edu@ucbvax.berkeley.edu (John Kawakami)
  1280. Subject: Possible GCR sale...  What is the real value
  1281. To: Info-Atari16@naucse.cse.nau.edu
  1282.  
  1283. I recently posted a short message asking if $300 is too much for a GCR.
  1284. It seems that it is actually not much to charge.  However, I have to
  1285. apologize to everyone who offered to buy it, as I am still just thinking
  1286. about selling it.  If I decide to sell it, I will hold an auction later
  1287. in the summer.
  1288.  
  1289. *************************************************************************
  1290.  
  1291. Things to think about re the Spectre GCR.
  1292.  
  1293. * Mac ROMS are very expensive now.  $250+ now.  This means fewer sales
  1294.   for the Spectre which means that GBS must focus on other products to
  1295.   produce revenue.
  1296.  
  1297. * System 7.0 does not work on Spectre now.  It probably will eventually,
  1298.   knowing the way Dave Small works his magic.  But the new System will
  1299.   probably not be as compatible as 6.0.3 is for a while.
  1300.  
  1301. * On the plus side, a Spectre on a TT or SST030 is a cheap alternative
  1302.   to a Mac II.
  1303.  
  1304. * If you have a full blown mono ST system with a memory upgrade and a
  1305.   hard drive with free space, this is a cheap way to become a Mac.  If
  1306.   you need to get a hard drive or a ram upgrade kit, the price of "going
  1307.   mac" gets expensive fast (GCR needs 1 meg and a floppy, but 2 megs and
  1308.   ten megs of hard disk are closer to a usable minimum configuration.)
  1309.   The Mac Classic under the educational discount is under $1000 (I'm not
  1310.   sure how much) and it has full compatiblilty as well as giving you
  1311.   another CPU to hack on (sometimes it's very handy to have two machines).
  1312.  
  1313. * There is no SuperDrive for the GCR.  On the other hand, all disk accesses
  1314.   are faster than most macs' disk accesses.
  1315.  
  1316. # The GCR is usually very good to me.  It rarely ever crashes (under System
  1317.   6.0.5) and has let me run Microsoft Word 4.0, which seems to be a popular
  1318.   standard around campus.  I also did some programming work on it.  It
  1319.   is a useful tool.  However, it is not as disk compatible as Dave Small
  1320.   would have you believe: it failed on the two drives I was using.  One was
  1321.   a late model TEAC, the other was an NEC (which is popular with 3rd party
  1322.   disk makers for some reason).  The TEAC never worked right, the NEC was
  1323.   hacked/fixed with instructions by Small.  It is supposed to do Mac disks
  1324.   correctly with other 3rd party disk drives.
  1325.  
  1326. ************************************************************************
  1327.  
  1328. John Kawakami                  kawakami@ocf.berkeley.edu
  1329.                                ucbvax!ocf.berkeley.edu!kawakami
  1330.  
  1331. ------------------------------
  1332.  
  1333. Date: Thu, 27 Jun 91 00:01:25 CET
  1334. From: Ulf Rimkus <RIMKUS_U%DMRHRZ11.BITNET@CUNYVM.CUNY.EDU>
  1335. Subject: Problems using MNP5
  1336. To: info-atari16@naucse.cse.nau.edu
  1337.  
  1338. Dear Netter!
  1339. I'm quite new to computer-communications and therefore have some problems
  1340. using the MNP5-Protocoll of my new 2400 bps modem. I have found these 3
  1341. commands, which should switch the modem to auto-mnp5. They are \n3, %c1, and
  1342. \v1. But that seems not to be enough, because a few minutes after the
  1343. successfull connect my modem decides to cut the line to the remote modem off.
  1344. Working without MNP5 is fine, but sometimes disturbed by strange chracters
  1345. appearing on my Terminal (I'm using UniTerm V2.0e).
  1346. Now what AT-commands are neccesary to switch to MNP5 and how is the Terminal
  1347. (UniTerm) to configurate?
  1348. By the way Waht is the key to switch UniTerm in INSERT-MODE?
  1349. Thanks for any answer and help in advance,
  1350. Ulf
  1351. RIMKUS_U@DMRHRZ11.BITNET
  1352.  
  1353. ------------------------------
  1354.  
  1355. Date: 26 Jun 91 21:47:29 GMT
  1356. From:
  1357.  noao!asuvax!ukma!widener!netnews.upenn.edu!eniac.seas.upenn.edu!hindi@arizona.e
  1358.  du (Faeiz Hindi )
  1359. Subject: Repost: The Mother of All Computer Sales
  1360. To: Info-Atari16@naucse.cse.nau.edu
  1361.  
  1362. Just to let those interested know, I've sold the 520ST, NX-10 printer,
  1363. and the Supra 2400 modem.  Thanks to all those who responded.
  1364.  
  1365. But...
  1366.  
  1367. I STILL have the following for sale:
  1368.  
  1369. Atari 1040STfm and SC1224 Color monitor.  It is 1 1/2 years old and in
  1370. PERFECT condition.  This includes a mouse, 1 meg ram, internal DS 3.5"
  1371. drive, and an RF modulator.  I've decided to throw in the following
  1372. software: Dungeon Master, Falcon, Tanglewood, Shuttle, ST-Talk,
  1373. Grid-Iron, FAS-ST, Haba-Check checking program, all with original
  1374. boxes and doc's.  I will also include a box of 10 blank disks.
  1375. Finally, I'm including 2 joysticks, (Epyx and Winner brands).
  1376.  
  1377. I paid over $1100 for all this stuff, but I'm asking only $500.
  1378.  ("Wow, what a great deal!").
  1379.  
  1380.  
  1381.     --->        Please respond to hindi@eniac.seas.upenn.edu      <---
  1382.  
  1383.  
  1384.         Thanks for your time.
  1385.  
  1386.                         --Faeiz Hindi
  1387.  
  1388. ------------------------------
  1389.  
  1390. Date: 26 Jun 91 10:33:55 GMT
  1391. From: mcsun!unido!mcshh!the.fawn@uunet.uu.net (Thomas Quester)
  1392. Subject: Review of LHARC Test Archive Function
  1393. To: Info-Atari16@naucse.cse.nau.edu
  1394.  
  1395. >|> I hope that these results might be of use to all.
  1396.  
  1397. >Oh yes, it is. They clearly show at least two facts:
  1398.  
  1399. >1. You have to fiddle around to get a proper LHarc version.
  1400. If you have the wrong version of LHarc, you indeed need several versions.
  1401. Before releasing LZH1.13.20 I tested it with every version of LHarc I could
  1402. get. This includes John Webbs LHarc 0.6, several Unix versions, LHA 1.21
  1403. and Strunk. In some archives LZH 1.13.20 could not read the crc, but it
  1404. is still able to decode the archive.
  1405.  
  1406. >2. If you pack something with (your version of) LHarc you can't be sure
  1407. >   the fellow at the receiving end will be able to unpack it, because he
  1408. >   might not have an edequate LHarc.
  1409.  
  1410. >Your test still leaves open the question if the tested LHarcs are
  1411. >compatible to one or more Unix LHarcs.
  1412.  
  1413. I WOULD like to send my newest version to the net. But it dosen't work.
  1414. Perhaps someone can send me a instruction how to send a binary from
  1415. germany?
  1416.  
  1417.  
  1418. ------------------------------
  1419.  
  1420. Date: 26 Jun 91 16:12:36 GMT
  1421. From: sae!malay@uunet.uu.net (Bob Malay)
  1422. Subject: Slime World - Lynx
  1423. To: Info-Atari16@naucse.cse.nau.edu
  1424.  
  1425. I got a hold of the transcript of an old Genie roundtable discussion about
  1426. the Lynx. There was some talk of an "easter egg" in Slime World - some sort
  1427. of zit-popping contest. Is there any truth to this? If so how does one
  1428. get to the "easter egg"??
  1429.  
  1430. Bob Malay
  1431.  
  1432. ------------------------------
  1433.  
  1434. Date: 27 Jun 91 02:15:06 GMT
  1435. From:
  1436.  noao!ncar!elroy.jpl.nasa.gov!usc!chaph.usc.edu!aludra.usc.edu!jjung@arizona.edu
  1437.  (Robert Jung)
  1438. Subject: Slime World - Lynx
  1439. To: Info-Atari16@naucse.cse.nau.edu
  1440.  
  1441. In article <1991Jun26.161236.27494@sae.com> malay@sae.com (Bob Malay) writes:
  1442. >I got a hold of the transcript of an old Genie roundtable discussion about
  1443. >the Lynx. There was some talk of an "easter egg" in Slime World - some sort
  1444. >of zit-popping contest. Is there any truth to this? If so how does one
  1445. >get to the "easter egg"??
  1446.  
  1447.   Go to the on-line instructions screen. Advance to the page where Todd
  1448. turns green. Press OPTION 1. The object of the game isto jab the A button
  1449. as fast as possible, to inflate the "zit" faster than the computer can
  1450. deflate it.
  1451.  
  1452.   This is nothing -- check out the fully-implemented version of Conway's
  1453. The Game of Life in ZARLOR MERCENARY (with cut-and-paste and a library of
  1454. lifeforms, no less).
  1455.  
  1456.   (Try rec.games.video; you'll like it!  B-)
  1457.  
  1458.                                                 --R.J.
  1459.                                                 B-)
  1460.  
  1461. //////////////////////////////////////|\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\\
  1462. Send whatevers to jjung@nunki.usc.edu | If it has pixels, I'm for it.
  1463. --------------------------------------+----------------------------Lynx me up!
  1464.        "If it moves, shoot it. If it doesn't move, shoot it anyway."
  1465.  
  1466. ------------------------------
  1467.  
  1468. Date: 26 Jun 91 07:36:38 GMT
  1469. From:
  1470.  noao!ncar!elroy.jpl.nasa.gov!swrinde!zaphod.mps.ohio-state.edu!think.com!mintak
  1471.  a!ogicse!clark!pro-haven.cts.com!bandersnatch@arizona.edu (Kevin Raley)
  1472. Subject: ST Software from British distributors
  1473. To: Info-Atari16@naucse.cse.nau.edu
  1474.  
  1475. In-Reply-To: message from dddean@bluemoon.uucp
  1476.  
  1477. I too have recently purchased a couple of recent issues of ST Action and
  1478. have been quite impressed with the enclosed demos- Pity we have to wait six
  1479. months for half of the things advertised therein.
  1480. ----
  1481. ProLine:  bandersnatch@pro-haven                    Kevin Raley
  1482. Internet: bandersnatch@pro-haven.cts.com
  1483. UUCP:     crash!pro-haven!bandersnatch
  1484. ARPA:     crash!pro-haven!bandersnatch@nosc.mil
  1485.  
  1486. ------------------------------
  1487.  
  1488. Date: 26 Jun 91 21:55:19 GMT
  1489. From: unhd.unh.edu!oz!pyr579@uunet.uu.net (Technoid)
  1490. Subject: Unwanted Amiga Input
  1491. To: Info-Atari16@naucse.cse.nau.edu
  1492.  
  1493.         You know, I'm really shocked! I've been an Atarian for over 6 years
  1494. I've had 8-bits and ST's. I've seen the Atari vs Commodore wars come and go.
  1495. I've enjoyed reading the news in comp.sys.atari.st but lately I can't enjoy
  1496. any of it without some posting about Amiga's "superiority" from some life-long
  1497. commodore die-hards. Great! This is comp.sys.atari.st not comp.sys.amiga.*
  1498. and these little battles and irritating posts do NOT belong here. Who is in
  1499. charge of this news group anyway? Usually I read down through every article
  1500. every day, but I'm not going to if I have to sift out Amiga propaganda all
  1501. the time. If these Amiga types want to toot their own horn in there news
  1502. group fine, but they shouldn't be cluttering up ours. It seems to me that
  1503. unless you are posting something significant about the Atari ST in this
  1504. group then your message shouldn't be here. It is too bad people can get
  1505. away with this harassment in our newsgroups. Try to E-mail to these
  1506. people and you get wise comments and manure back. Get them off our news group.
  1507.  
  1508. Stephan
  1509. Technoid
  1510. Atarian
  1511.  
  1512. --
  1513. \/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/
  1514.   pyr579@oz.plymouth.edu      Stephan R. Cleaves      Salamanders Are Cool...
  1515. /\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\/\
  1516.  
  1517. ------------------------------
  1518.  
  1519. Date: 27 Jun 91 01:50:36 GMT
  1520. From: earthquake.Berkeley.EDU!kawakami@ucbvax.berkeley.edu (John Kawakami)
  1521. Subject: Unwanted Amiga Input
  1522. To: Info-Atari16@naucse.cse.nau.edu
  1523.  
  1524. WELLLLLL
  1525.  
  1526. I've used Atari computers for something like nine (9) years and I'm
  1527. REALLY tired of the Atari-Amiga wars (or is that Amiga-Atari wars:-/).
  1528. Let's be realistic here: for the time being, both machines are stagnant.
  1529. The only thing happening is the Video Toaster on the Amiga.  As far as
  1530. competing as a general use computer, both machines are beat out by
  1531. PCs and Macs.  Why can this be so, you ask.  After all, they both have
  1532. fine, overpowered and underpriced software and do whizbang things that
  1533. cost some serious bucks on PCs and Macs.  After all, both are really
  1534. COOL, Macs and PCs are for poseurs and rich-stupid people.  Why can
  1535. this be so?  The answer is compatibility.  Compatibility with the outside
  1536. world requires PC or Mac compatibility.  The strengths of these machines
  1537. lie in the amount of data you can access and the amount of work you can
  1538. exchange and disseminate.
  1539.  
  1540. OK, I've simplified.  The upper end Amigas are PC compatible.  You can
  1541. buy Mac and PC compatibility for both machines.  But to get this compat-
  1542. ibility, you must pay money.  Why bother; why not get the real thing and
  1543. be done with it.
  1544.  
  1545. If you don't hack, if you are not a hobbyist, you don't need an Amiga
  1546. or Atari.
  1547.  
  1548.  
  1549. *****
  1550.  
  1551. BTW, I will probably be using my Atari for some years to come.  It does
  1552. everything I expect of a computer, and I'm happy with that.  Once I start
  1553. expecting more that I get, I will move up to something more powerful.
  1554.  
  1555.  
  1556.  
  1557. John Kawakami                  kawakami@ocf.berkeley.edu
  1558.                                ucbvax!ocf.berkeley.edu!kawakami
  1559.  
  1560. ------------------------------
  1561.  
  1562.